<?php

namespace app\admin\validate;
use think\Validate;

class Rule extends Validate
{

    //验证规则
    protected $rule = [
        'pid' =>  'number|checkParentId|checkSelf',
        'title'     =>  'require|max:90',
    ];

    //验证信息
    protected $message = [
        'pid.checkSelf'       => '上级不能选自己',
        'pid.checkParentId'   => '菜单最多支持三级',
        'title.require'       => '菜单名称不能为空！',
        'title.max'           => '菜单名称不能超过30个字符！',
        'title.unique'        => '菜单名称已经存在！',
   ];

    /**
     * @param $pid.
     *
     *
     * 
     * 修改时不能选自己
     */
    public function checkSelf($pid){
        $id = input('post.id/d');
        if($id){
            if($id == $pid){
                return false;
            }
        }
        return true;
    }
    /**
     * 验证菜单是否超过四级
     * @param $parent_id
     * @return bool
     */
    protected function checkParentId($pid){
        $ruleModel = db('rule');
        $find = $ruleModel->where(array('id' => $pid))->value('pid');
        if($find){
                 $find2 = $ruleModel->where(array('id' => $find))->value('pid');
            if($find2){
                return false;
                  }
             }
        return true;
         }
    }